Industrial robot circular arc control method for controlling the angle of a tool

ABSTRACT

An industrial robot arc control method subjects the position of a working member to circular-arc control by interpolation while controlling the target angle of the working member with respect to a surface to be worked, which working member is mounted on the wrist of an industrial robot. The industrial robot circular arc control method includes obtaining corresponding points (P1, P2 . . . ; Q1, Q2 . . . ;) of the tip and base of the working member (TC) at plural taught points for circular-arc control of the tip of the working member, which is mounted on a wrist (HD) of the robot, finding interpolated points of the tip and base of the working member by interpolation from the corresponding taught points, and obtaining command quantities for the motion axes of the robot from the interpolated points.

BACKGROUND OF THE INVENTION

1.Field of the Invention

This invention relates to a method of controlling an industrial robotand, more particularly, to an industrial robot arc control method forsubjecting the position of a working member to circular-arc control byinterpolation while controlling the target angle of the working memberwith respect to a surface to be worked, where the working member ismounted on the wrist of an industrial robot.

2. Description of the Related Art

Industrial robots have found extensive use in recent years and arecapable of performing increasingly sophisticated operations. Theseindustrial robots have the capability to carry out a variety of tasksdepending upon the kind of working member mounted at the distal end ofthe wrist thereof. Control of the robot differs depending upon the kindof task.

FIG. 1 is a view showing the construction of a common industrial robot.The illustrated robot is an articulated robot with movement along fiveaxes. More specifically, the industrial robot depicted in FIG. 1comprises a base BS which rotates about an axis E, a body BD whichrotates about an axis D with respect to the base BS, an arm ARM whichrotates about an axis C with respect to the body BD, and a wrist HDwhich rotates about an axis B with respect to the arm ARM, and whichfurther rotates about an axis A. The robot is therefore an articulatedrobot having three fundamental axes and two wrist axes, for a total offive axes. An industrial robot of this kind controls the position andtravelling velocity of the wrist HD by effecting control along the fiveaxes, and performs a desired task using a working member mounted on thewrist HD. The kind of task and the type of control differ depending uponthe type of working member, such as a hand or torch, mounted on thewrist HD. By way of example, an industrial robot for arc welding has atorch mounted at the tip of the wrist HD to serve as the working member,and the surface of a workpiece to be worked is subjected to arc weldingalong a desired path by means of the torch. In arc welding of this kindor in an operation such as gas cutting, there is the danger of anon-uniform welding or cutting operation unless the angle (target angle)of the torch or working member with respect to the workpiece surface isset to an optimum value. The robot therefore requires that the absoluteangle of the torch be controlled by the wrist HD in dependence upon theinclination of the workpiece surface.

More specifically, the robot wrist HD has the rotational axis B withrespect to the arm ARM, as well as the rotational axis A for the wristitself, as shown in FIG. 2(A). When a torch TC is mounted at the distalend of the wrist as shown in FIG. 2(B), the target angle of the torch TCis capable of being varied to assume values of β₁, β₂ and β₃ by rotatingthe wrist about the axis B.

In a case where the workpiece has an arcuate shape, it is necessary tomove the tip of the torch along a circular arc. Consequently, in theprior art, as shown in the explanatory view of FIG. 3, the positions ofthree points P1, P2 and P3 of the torch tip with respect to the arcuatesurface of a workpiece WK to be worked are taught with the target angleβ₁ being held constant, an interpolated point Pn is obtained from thetaught points P1, P2 and P3 by an interpolation method, and arc travelcontrol is performed by controlling the robot about each of its axes ofmotion in such a manner that the torch tip reaches the interpolatedpoint Pn.

With such arc travel control, however, it is difficult to control thetarget angle of the torch TC with respect to the work surface, thetarget angle cannot be held constant during circular interpolation andcannot be varied at each of the taught points. Moreover, according tosuch conventional control, smooth and continuous control of the targetangle of the torch TC with respect to the work surface is difficult tocarry out.

SUMMARY OF THE INVENTION

An object of the present invention is to provide an industrial robotcircular arc control method which makes it possible to control thetarget angle of a working member such as a torch mounted on the wrist ofa robot when controlling the arcuate movement of the working member byinterpolation.

The industrial robot circular arc control method of the presentinvention uses an industrial robot which possesses a plurality of motionaxes along which motion is effected by a plurality of respective motors,and a control unit for controlling the motors of the robot. The controlunit obtains corresponding points of the tip and base of a workingmember at plural taught points for circular-arc control of the tip ofthe working member, which is mounted on a wrist of the robot. Thecontrol unit also finds interpolated points of the tip of the workingmember by interpolation from the corresponding points of the tip of theworking member and finds interpolated points of the base of the workingmember by interpolation from the corresponding points of the base of theworking member. The control unit further obtains motion commandquantities for the respective motion axes from both sets of theinterpolated points obtained, and controls the motors on the basis ofthe command quantities. Therefore, according to the present invention,the target angle (attitude) of the working member mounted on the robotwrist can be controlled, and such control of the target angle can beexecuted by interpolation. Control can therefore be achieved with ease.Hence, in accordance with the invention, the target angle of the workingmember mounted on the robot wrist can be controlled continuously duringmotion of the working member. Therefore, in cases where the invention isapplied to a welding or gas-cutting robot, welding or cutting conditionscan be controlled in a uniform fashion to improve the quality of theparticular activity.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a view showing the construction of an industrial robot.

FIG. 2(A) and 2(B) are views for explaining target angle control;

FIG. 3 is a view for describing a conventional circular arc controlmethod;

FIG. 4 is a view for describing a circular arc control method accordingto the present invention;

FIG. 5 is a view showing the manner in which a torch is mounted on thewrist of a robot;

FIG. 6 is a block diagram of an embodiment of a robot control apparatusfor practicing the circular arc control method according to the presentinvention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described in conjunction with theaccompanying drawings to set forth the invention in greater detail.

FIG. 4 is a view for describing a control method according to thepresent invention, and FIG. 5 is a view showing the manner in which atorch is mounted on the wrist of a robot.

In accordance with the present invention, the method includes creatingtaught data by positioning, at respective predetermined target angles β₁through β₃, the tip of a torch at points P1, P2 and P3 on a circular arcC1 defining the surface of a workpiece to be worked, as shown in FIG. 4,measuring the respective positions (.sub.Δ x₁, .sub.Δ y₁, .sub.Δ z₁),(.sub.Δ x₂, .sub.Δ y₂, .sub.Δ z₂) of the tip A1 and a base end A2 of atorch TC in a Cartesian coordinate system Xa-Ya-Za when the rotationalangle of the robot about the axis A is zero, as shown in FIG. 5, andstoring these positions in memory. In the Cartesian coodinate systemXa-Ya-Za, a predetermined point Q in the plane of the hand of the wristHD is taken as the origin, the axis orthogonal to the plane of the handand passing through the point Qt is taken as the Xa axis, and the axesorthogonal to the Xa axis and passing through the point Qt are taken asthe Ya and Za axes.

This is followed by finding the positions (.sub.Δ x'1, .sub.Δ y'1,.sub.Δ z'1), (.sub.Δ x'2, .sub.Δ y', .sub.Δ z'2) of the tip A1 and baseA2, respectively, of the torch C1 at each taught point, where (.sub.Δx'1, .sub.Δ y'1, .sub.Δ z'1), (.sub.Δ x'2, .sub.Δ y'2, .sub.Δ z'2) arepositions in the coordinate system Xa-Ya-Za. For example, in the exampleof FIG. 5, (.sub.Δ x₁, .sub.Δ y₁, .sub.Δ z₁)=(x₁, 0, 0) and (.sub.Δ x₂,.sub.Δ y₂, .sub.Δ z₂)=(x₂, 0, z₂). Therefore, if the angle of rotationabout the axis A at the taught points is a_(i), then these positionswill be given by the following: ##EQU1##

Thereafter, taught position vectors in a revolute coordinate system atrespective ones of the taught points are found from the above equationsby using a well-known coordinate transformation matrix J: ##EQU2## Itshould be noted that X, Y, Z represent the position of the referencepoint Qt in the plane of the hand in the robot coordinate system, and a,b, c represent a vector normal to the plane of the hand.

This is followed by finding, from Eqs. (3), (4) below, a torch tipposition vector S and a torch base position vector R in the robotcoordinate system by using a taught position vector Q_(ti) at the taughtpoint as well as the tip and base position vectors of the torch TC ateach of the taught points given by the Eqs. (1), (2) above: ##EQU3##

From the foregoing we may obtain position vectors S1, S2, S3 and R1, R2,R3 of the torch tip points P1, P2, P3 and torch base points Q1, Q2, Q3,respectively.

Next, the center 0₁ and central angle θ₁ of a circular arc C1 are foundfrom the position vectors S1, S2, S3 of the torch tip, and the length mof the circular arc P1P3 is found from the central angle θ₁ and from theradius of the arc. Furthermore, since a travel velocity F is given inthe teaching operation, the interpolation time T of the circular arc isgiven by the following:

    T=m/F                                                      (5)

Therefore, the angular velocity ω₁ along the circular arc C1 is givenby:

    ω.sub.1 =θ.sub.1 /T                            (6)

and the interpolation angle .sub.Δ θ₁ of each interpolated point Pi isgiven by the following equation:

    .sub.Δ θ.sub.1 =ω.sub.1.sub.Δ T    (7)

(where .sub.Δ T represents unit time).

When the interpolation angle .sub.Δ θ₁ is found in this manner, thecoordinates (position vectors) Si of the respective interpolated pointsPi are obtained by calculation.

Next, the angular velocity ω₂ of the circular arc Q1Q3 is found inaccordance with the following:

    ω.sub.2 =ω.sub.1 ·(θ.sub.2 /θ.sub.1) (8)

from each of the central angles θ₁, θ₂ and from the angular velocity ω₁along the circular arc P1P3.

As in Eq. (7), an interpolation angle .sub.Δ η₂ is found from thefollowing:

    .sub.Δ θ.sub.2 =ω.sub.2 ·.sub.Δ T (9)

and the coordinates (position vectors) Ri of the respective interpolatedpoints Q_(i) are found in a manner similar to that described above.

Thereafter, a torch inclination vector l is found from the followingequation:

    l=Ri-Si                                                    (10)

When l and Si have been found, robot position data in the revolutecoordinate system are found by using a well-known transformation matrixfor an inverse transformation from the Cartesian coordinate system tothe revolute coordinate system. The robot is driven based on these data.Thenceforth, the position vectors Si, Ri and the inclination vector l atthe above-mentioned interpolated points Pi, Qi (i=1, 2, . . . ) arefound in successive fashion, robot position data in the revolutecoordinate system are found using these vectors, and the robot is drivenon the basis of these position data. When this is done, the tip of thetorch travels while traversing the circular arc C1, and the target anglebecomes β₁, β₂ and β₃ at the respective taught points and changessmoothly from β₁ to β₂ and from β₂ to β₃ between mutually adjacenttaught points. Assuming that teaching is performed with the target anglebeing held constant, the tip of the torch will move along a circular arcwithout any change in the target angle.

Described next will be the construction of a robot control unit forpracticing the method of the present invention.

FIG. 6 is a block diagram illustrating an embodiment of a robot controlunit for practicing the present invention. In the Figure, numerals 100A,110B, 100C, 100D and 100E denote motors for producing rotation about theaxes A, B, C, D and E of the robot. Numerals 101A through 101E designatepulse distributing sections corresponding to the respective axes Athrough E. The pulse distributing sections, respectively include pulsedistributors 110A through 110E for generating distributed pulses Ps thenumber of which is dependent upon movement commands for the axes Athrough E, and acceleration-deceleration circuits 111A through 111Ewhich apply acceleration-deceleration control to the distributed pulsesto produce command pulses Pi. Numerals 102A through 102E represent drivecircuits corresponding to the respective axes A through E. The drivecircuits, respectively, include error calculating and storage units(error counters) 112A through 112E for calculating and storing thedifference (error) between the command pulses Pi, received from therespective acceleration-deceleration circuits 111A through 111E of thepulse distributors 101A through 101E, and feedback pulses FP provided byrespective position sensors (not shown) of the motors 100A through 100E.Also included in the drive circuits are digital-analog; (DA) converters113A through 113E for converting the error Er, which results from thecalculations performed by the error counters, into an analog quantity togenerate a velocity command Vc, and velocity control circuits 114Athrough 114E for producing a difference between the velocity command Vcand an actual velocity TSA provided by respective velocity sensors (notshown) for the motors 100A through 100E. To simplify the drawing, thepulse distributor and other components constituting each of the pulsedistribution sections 101B through 101E and drive circuits 102B through102E are not shown. Numeral 103 denotes a robot controller constitutedas a microcomputer and comprising an arithmetic circuit (processor) 104for performing processing based on a control program described below,and a program memory 105 for storing the control program as well asnecessary parameters. Also included are a data memory 106 for storingcontrol data and calculation data and an operator's panel 107 havingteach buttons as well as other control buttons and status indicators.Input/output ports 108A through 108E for performing an exchange of datawith the pulse distributing sections 101A through 101E for therespective axes A through E of the robot, and an address/data bus 109interconnecting the foregoing components are also included. Controlprograms stored in the program memory 105 include a position controlprogram for producing control data to positionally control the motors ofthe axes A through E, and a teach control program for controllingmovement of the axes in accordance with jog button feed, which isdependent upon a teach mode command, and for creating taught controldata.

The operation of the arrangement embodied in FIG. 6 will now bedescribed. In and ordinary operating mode, control data (the taughtpoints P1 through P3 and Q1 through Q3), which have already beenprovided by a teaching or other main controller and stored in the datamemory 106, are read out of the memory in sequential fashion by theprocessor 104 in accordance with the position control program in theprogram memory 105.

More specifically, for the interpolation calculation, the processor 104finds the central angles θ₁ and θ₂ from the taught points P1 through P3and Q1 through Q3 by calculation, and calculates the length m of thecircular arc P1P3. Next, the processor 104 calculates the interpolationangle .sub.Δ θ₁ from Eqs. (5), (6) and (7) and finds the position vectorSi at each of the interpolated points Pi. The processor 104 thencalculates the interpolation angle .sub.Δ θ₂ from Eqs. (8) and (9),finds the position vector Ri at each of the interpolated points Qi,subsequently finds the inclination vector l from Eq. (10), performs thetransformation into coordinates (motion angles of the motion axes) inthe revolute coordinate system by using l and Si, and feeds thesecoordinates into the input/output ports 108A through 108E via the bus109. As an example, when α₁ is calculated as a travel quantity (motionangle) for the A axis, the processor 104 produces as an output astipulated quantity ₆₆ α, which is part of the travel quantity α₁, andthe pulse distributor 110A produces distributed pulses of a number inaccordance with .sub.Δ α. When the generation of the distributed pulsesends, the pulse distributor produces a distribution end signal DEN,which the processor 104 receives via the input/output port 108A and bus109, and the processor responds by producing a subsequent stipulatedquantity .sub.Δ α. Thereafter, the receipt of the distribution endsignal and the generation of .sub.Δ α are repeated in similar fashion tocommand or output α ₁ in its entirety. The same operations are performedwith regard to the other axes B through E. When .sub.Δ α is sent to thepulse distributor 110A, the latter immediately performs a pulsedistribution calculation to produce the distributed pulses Ps. Thepulses Ps are converted into command pulses Pi by theacceleration-deceleration circuit 110A and enter the error counter 112Ato update its status incrementally in the positive (or negative)direction. As a result, the status of the error counter 112A becomesnon-zero and the DA converter 113A converts the counter status into ananalog voltage, thereby rotating the motor 100A via the velocity controlcircuit 114A to rotate the wrist HD about the A axis. When the motor100A rotates, the position sensor produces one feedback pulse FP eachtime the motor 100A rotates a predetermined amount. The status of errorcounter 112A is decremented and, hence, updated, one count at a timewhenever a feedback pulse FP is generated. Further, the actual velocityTSA of the motor 100A is provided by the velocity sensor, and thevelocity control circuit 114A finds the difference between the actualvelocity and the velocity command Vc to control the velocity of themotor 100A. The motor 100A is thus subjected to velocity and positionalcontrol and is rotated to a target position. The motors 100B through100E for the other axes B through E, respectively, are controlled insimilar fashion. The processor 104 repeats the foregoing operations inaccordance with the position control program and moves the industrialrobot to each of the interpolated points in accordance with the controldata, whereby the tip of the torch held by the industrial robot iscontrolled for movement along a circular arc.

The processor 104 repeats the foregoing operations each time aninterpolated point is calculated to eventually control the movement ofthe torch tip along the circular arc while controlling the target angleof the torch.

Though the present invention has been described in conjunction with anembodiment thereof, the invention is not limited to the above-describedembodiment and various modifications can be made in accordance with thegist of the invention without departing from the scope thereof.

Thus, as set forth above, an industrial robot circular arc controlmethod according to the present invention makes it possible to controlthe target angle (attitude) of a working member mounted on the wrist ofthe robot. The invention is therefore well-suited for application to awelding robot or gas cutting robot.

What we claim is:
 1. An industrial robot circular arc control method foran industrial robot which possesses a plurality of motion axes alongwhich motion is effected by a plurality of respective motors, and acontrol unit for controlling each of the motors of the robot, thecontrol unit controlling each of the motors to move a tip of a workingmember, which is mounted on a wrist of the robot, along a circular arc,said method comprising the steps of:storing positions of the tip andbase of the working member at a predetermined rotational angle of thewrist, with a predetermined point Qt in the plane of the wrist of therobot serving as a reference; positioning the tip of the working memberat each taught point at a predetermined target angle and storing, astaught data, the position of the predetermined point Qt in the plane ofthe wrist and the rotational angle of the wrist at each taught point;finding positions of the tip and base of the working member in a robotcoordinate system based on said stored taught data and the positions ofthe tip and base of the working member where the predetermined point Qtin the plane of the working member serves as the reference, and usingthese positions as plural taught points of the tip and base of theworking member; obtaining corresponding points of the tip and a base ofthe working member at the plural taught points for circular-arc controlof the tip of the working member; finding interpolated points of the tipof the working member by interpolation from the corresponding points ofthe tip of the working member; finding interpolated points of the baseof the working member by interpolation from the corresponding points ofthe base of the working member; obtaining motion command quantities forthe respective motion axes from interpolated points obtained for the tipand the base; and controlling the motors on the basis of the commandquantities.
 2. An industrial robot circular arc control method accordingto claim 1, wherein said control unit finding corresponding points at apredetermined time on a circular arc connecting three taught points ofthe tip of the working member and on a circular arc connecting threetaught points of the base of the working member, and obtaining motioncommand quantities for the respective motion axes of the robot based onan inclination vector connecting each of the corresponding points, andon said corresponding points of the cip of the working member.
 3. Amethod of circular arc control for a too kept at a constant angle withrespect to a surface of a workpiece, said method comprising the stepsof:(a) storing at least three taught point pairs for the tool, whereeach pair includes a tip point for a tip of the tool and a base pointfor a base of the tool; (b) interpolating between the tip points toproduce interpolated tip points and between the base points to produceinterpolated base points, step (b) comprising the steps of:(b1)converting the pairs into taught position vectors for each pair; (b2)converting the taught position vectors into tip and base positionvectors for each tip and base point; (b3) calculating a tip centralangle and a tip arc length for the tip position vectors; (b4)calculating a tip angular velocity along an arc formed by the tip pointsin dependence upon the tip central angle, the tip arc length and toolvelocity; (b5) producing a tip interpolation angle from the tip angularvelocity; (b6) producing interpolated tip position vectors forinterpolated tip points from the tip points and the tip interpolationangle; (b7) calculating a base central angle from the base positionvectors; (b8) calculating a base angular velocity from the tip angularvelocity, the tip central angle and the base central angle; (b9)producing a base interpolation angle from the base angular velocity;(b10) producing interpolated base position vectors for interpolated basepoints from the base points and the base interpolation angle; and (b11)producing a tool inclination vector from the interpolated base positionvectors and the interpolated tip position vectors; and (c) controllingthe tip and base positions of the tool in dependence upon theinterpolated tip points and the interpolated base points.
 4. Anindustrial robot circular arc control method for an industrial robotincluding motion axes along which motion is effected by respectivemotors, and a control unit for controlling each of the motors of therobot, the control unit controlling each of the motors to move a tip ofa working member in accordance with a command along a circular arc, theworking member mounted on a wrist of the robot and including a base atthe wrist, said method comprising the steps of:storing positions of thetip of the working member when positioned at at least three taught tipposition points for controlling the tip of the working member whilemoving along the circular arc and storing base position points of thebase of the working member corresponding to the tip; determining a pairof corresponding angle points at a predetermined time, one of the anglepoints being located on an arc connecting the at least three tipposition points and the other of the angle points being located on anarc connecting the corresponding base position points of the base of theworking member; and obtaining motion command quantities for therespective robot motion axes based on an inclined vector connecting thepair of the corresponding angle points of the tip of the working memberfor controlling the motors based on the command.